﻿#pragma once
#include <wx/wx.h>
#include "../json/json.h"
#include <wx/hyperlink.h>
class ChatPanel : public wxPanel
{
public:
    ChatPanel(wxWindow* parent);

    void OnCloseButtonClick(wxCommandEvent& event);
    void OnSubmitButtonClick(wxCommandEvent& event);
    void OnPaintButtonClick(wxCommandEvent& event);
    void OnRecButtonClick(wxCommandEvent& event);
    void OnClearButtonClick(wxCommandEvent& event);

    void OnZhihulinkClicked(wxHyperlinkEvent& event);
    void OnCsdnlinkClicked(wxHyperlinkEvent& event);
    void OnBaidulinkClicked(wxHyperlinkEvent& event);

    // 定义回调函数类型
    using PaintCallback = std::function<void(wxCommandEvent&)>;
    // 设置回调函数
    void SetPaintCallback(PaintCallback callback);

    std::vector<std::string> components;  //创建一个向量components，用于存储分割后的元器件类型。
    //chat的历史聊天记录保存
    bool first = true;//是否是第一次聊天
    std::string base = u8" ";
    Json::Value data;
    Json::Value history;
    Json::Value historyin;

private:
    wxTextCtrl* m_inputTextCtrl;
    wxTextCtrl* m_outputTextCtrl;
    PaintCallback m_paintCallback; // 回调函数指针
};

